package cn.iocoder.yudao.module.signature.controller.admin.application.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 应用新增/修改 Request VO")
@Data
public class ApplicationInfoSaveReqVO {

    @Schema(description = "应用id", requiredMode = Schema.RequiredMode.REQUIRED, example = "938")
    private Long id;

    @Schema(description = "图标地址", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "图标地址不能为空")
    private String iconImg;


    @Schema(description = "备注", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private String remark;

    @Schema(description = "应用名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
    @NotEmpty(message = "应用名称不能为空")
    private String applicationName;

    @Schema(description = "应用版本", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "应用版本不能为空")
    private String applicationVersion;

    @Schema(description = "权重", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "权重不能为空")
    private Integer weight;

    @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotEmpty(message = "状态不能为空")
    private String applicationStatus;

    @Schema(description = "归属类型 公共 个人", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotEmpty(message = "归属类型 公共 个人不能为空")
    private String belongType;

    @Schema(description = "应用地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn")
    @NotEmpty(message = "应用地址不能为空")
    private String applicationUrl;

    @Schema(description = "包名", requiredMode = Schema.RequiredMode.REQUIRED, example = "26158")
    @NotEmpty(message = "包名不能为空")
    private String bundleId;

    @Schema(description = "应用大小", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "应用大小不能为空")
    private String applicationSize;

    @Schema(description = "签名工具标识")
    private Integer signatureToolFlag;

    @Schema(description = "上传时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime uploadTime;

    @Schema(description = "简易代销标识", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer consignmentFlag;


    /**
     * 用户id
     */
    private Long userId;

}